package com.hw.blog.common;

public class IntegerUtil {
	/**	스트링을 정수로 ,null이면 대체값을 돌려준다	*/
	public static int toInt( String value, int num ) {

		String temp = null;

		if ( StringUtil.isNull( value ) ) {
			return num;
		}
		else if ( value.equals("") ) {
			return num;
		}
		else if( ( temp = through(value) ).length() == 0 ) {
			return 0;
		}
		else if( temp.equals("0") ) {
			return 0;
		}
		else {
			StringBuffer sb1 = new StringBuffer(temp);
			StringBuffer sb2 = new StringBuffer();

			for( int i=0; i < sb1.length(); i++ ) {
				if( sb1.charAt(i) == '0' ) {
					if( sb2.length() > 0 ) {
						sb2.append( sb1.charAt(i) );
					}
				}
				else {
					sb2.append( sb1.charAt(i) );
				}
			}

			if( sb2.length() == 0 ) {
				return 0;
			}
			else if( value.substring(0,1).equals("-") ) {				
				return Integer.parseInt( "-" + sb2.toString() );
			}

			return Integer.parseInt( sb2.toString() );
		}
	}// end toInt()
	
	/** 유효한 정수만 골라낸다. */
	public static String through( String str ) {
		StringBuffer sb1 = new StringBuffer(str);
		StringBuffer sb2 = new StringBuffer();

		for( int i=0; i < sb1.length(); i++ ) {
			switch( sb1.charAt(i) ) {
				case '0' :	sb2.append('0');
							break;
				case '1' :	sb2.append('1');
							break;
				case '2' :	sb2.append('2');
							break;
				case '3' :	sb2.append('3');
							break;
				case '4' :	sb2.append('4');
							break;
				case '5' :	sb2.append('5');
							break;
				case '6' :	sb2.append('6');
							break;
				case '7' :	sb2.append('7');
							break;
				case '8' :	sb2.append('8');
							break;
				case '9' :	sb2.append('9');
							break;
				default :	break;
			}
		}

		return sb2.toString();
	} 
}
